package com.turing.post.antimoney.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Table;

import com.turing.post.util.PCPSUtil;

/**
 * 支付机构可疑交易(行为)报告数据字典
 * 
 * @author 李治
 * 
 */
@SuppressWarnings("serial")
@Entity
@IdClass(SuspiciousTrans.class)
@Table(name = "SUSPICIOUSTRANS")
public class SuspiciousTrans implements Serializable {
	/**
	 * 可疑交易报告ID
	 */
	private BigInteger reportId;

	@Column(name = "REPORTID", nullable = false)
	public BigInteger getReportId() {
		return reportId;
	}

	public void setReportId(BigInteger reportId) {
		this.reportId = reportId;
	}

	/**
	 * 预警信息ID
	 */
	private BigInteger alarmInfoId;

	@Id
	@Column(name = "ALARMINFOID", nullable = false)
	public BigInteger getAlarmInfoId() {
		return alarmInfoId;
	}

	public void setAlarmInfoId(BigInteger alarmInfoId) {
		this.alarmInfoId = alarmInfoId;
	}

	/**
	 * 顺序号
	 */
	private Integer seqNo;

	@Id
	@Column(name = "SEQNO", nullable = false)
	public Integer getSeqNo() {
		return seqNo;
	}

	public void setSeqNo(Integer seqNo) {
		this.seqNo = seqNo;
	}

	/**
	 * 可疑主体姓名/名称
	 */
	private String CTNM;

	@Column(name = "CTNM")
	public String getCTNM() {
		return CTNM;
	}

	public void setCTNM(String CTNM) {
		this.CTNM = CTNM;
	}

	/**
	 * 主体特约商户编号
	 */
	private String SMID;

	@Column(name = "SMID")
	public String getSMID() {
		return SMID;
	}

	public void setSMID(String SMID) {
		this.SMID = SMID;
	}

	/**
	 * 可疑主体身份证件/证明文件类型
	 */
	private String CITP;

	@Column(name = "CITP")
	public String getCITP() {
		return CITP;
	}

	public void setCITP(String CITP) {
		this.CITP = CITP;
	}

	/**
	 *可疑主体身份证件/证明文件号码
	 */
	private String CTID;

	@Column(name = "CTID")
	public String getCTID() {
		return CTID;
	}

	public void setCTID(String CTID) {
		this.CTID = CTID;
	}

	/**
	 * 详细住址
	 */
	private String CTAR;

	@Column(name = "CTAR")
	public String getCTAR() {
		return CTAR;
	}

	public void setCTAR(String CTAR) {
		this.CTAR = CTAR;
	}

	/**
	 * 联系电话
	 */
	private String CCTL;

	@Column(name = "CCTL")
	public String getCCTL() {
		return CCTL;
	}

	public void setCCTL(String CCTL) {
		this.CCTL = CCTL;
	}

	/**
	 * 电子邮件
	 */
	private String CEML;

	public String getCEML() {
		return CEML;
	}

	public void setCEML(String CEML) {
		this.CEML = CEML;
	}

	/**
	 * 可疑主体的职业/行业类别
	 */
	private String CTVC;

	@Column(name = "CTVC")
	public String getCTVC() {
		return CTVC;
	}

	public void setCTVC(String CTVC) {
		this.CTVC = CTVC;
	}

	/**
	 * 可疑主体的法定代表人姓名（对公客户）
	 */
	private String CRNM;

	@Column(name = "CRNM")
	public String getCRNM() {
		return CRNM;
	}

	public void setCRNM(String CRNM) {
		this.CRNM = CRNM;
	}

	/**
	 * 可疑主体的法定代表人身份证件类型（对公客户）
	 */
	private String CRIT;

	@Column(name = "CRIT")
	public String getCRIT() {
		return CRIT;
	}

	public void setCRIT(String CRIT) {
		this.CRIT = CRIT;
	}

	/**
	 * 可疑主体的法定代表人身份证件号码（对公客户）
	 */
	private String CRID;

	@Column(name = "CRID")
	public String getCRID() {
		return CRID;
	}

	public void setCRID(String CRID) {
		this.CRID = CRID;
	}

	/**
	 * 可疑交易编号
	 */
	private String STIF;

	@Column(name = "STIF")
	public String getSTIF() {
		return STIF;
	}

	public void setSTIF(String STIF) {
		this.STIF = STIF;
	}

	/**
	 * 可疑主体的银行账号种类
	 */
	private String CBAT;

	@Column(name = "CBAT")
	public String getCBAT() {
		return CBAT;
	}

	public void setCBAT(String CBAT) {
		this.CBAT = CBAT;
	}

	/**
	 * 可疑主体的银行账号
	 */
	private String CBAC;

	@Column(name = "CBAC")
	public String getCBAC() {
		return CBAC;
	}

	public void setCBAC(String CBAC) {
		this.CBAC = CBAC;
	}

	/**
	 * 可疑主体银行账号的开户银行名称
	 */
	private String CABM;

	@Column(name = "CABM")
	public String getCABM() {
		return CABM;
	}

	public void setCABM(String CABM) {
		this.CABM = CABM;
	}

	/**
	 * 可疑主体的支付账户种类
	 */
	private String CTAT;

	@Column(name = "CTAT")
	public String getCTAT() {
		return CTAT;
	}

	public void setCTAT(String CTAT) {
		this.CTAT = CTAT;
	}

	/**
	 * 可疑主体的支付账户号码
	 */
	private String CTAC;

	@Column(name = "CTAC")
	public String getCTAC() {
		return CTAC;
	}

	public void setCTAC(String CTAC) {
		this.CTAC = CTAC;
	}

	/**
	 * 可疑主体所在支付机构的名称
	 */
	private String CPIN;

	@Column(name = "CPIN")
	public String getCPIN() {
		return CPIN;
	}

	public void setCPIN(String CPIN) {
		this.CPIN = CPIN;
	}

	/**
	 * 可疑主体所在支付机构的银行账号
	 */
	private String CPBA;

	@Column(name = "CPBA")
	public String getCPBA() {
		return CPBA;
	}

	public void setCPBA(String CPBA) {
		this.CPBA = CPBA;
	}

	/**
	 * 可疑主体所在支付机构银行账号的开户银行名称
	 */
	private String CPBN;

	@Column(name = "CPBN")
	public String getCPBN() {
		return CPBN;
	}

	public void setCPBN(String CPBN) {
		this.CPBN = CPBN;
	}

	/**
	 * 可疑主体的交易IP地址
	 */
	private String CTIP;

	@Column(name = "CTIP")
	public String getCTIP() {
		return CTIP;
	}

	public void setCTIP(String CTIP) {
		this.CTIP = CTIP;
	}

	/**
	 * 交易时间
	 */
	private Date TSTM;

	@Column(name = "TSTM")
	public Date getTSTM() {
		return TSTM;
	}

	public void setTSTM(Date TSTM) {
		this.TSTM = TSTM;
	}

	/**
	 * 货币资金转移方式
	 */
	private String CTTP;

	@Column(name = "CTTP")
	public String getCTTP() {
		return CTTP;
	}

	public void setCTTP(String CTTP) {
		this.CTTP = CTTP;
	}

	/**
	 * 资金收付标志
	 */
	private String CRPP;

	@Column(name = "CRPP")
	public String getCRPP() {
		return CRPP;
	}

	public void setCRPP(String CRPP) {
		this.CRPP = CRPP;
	}

	/**
	 * 资金收付标志
	 */
	private String TSDR;

	@Column(name = "TSDR")
	public String getTSDR() {
		return TSDR;
	}

	public void setTSDR(String TSDR) {
		this.TSDR = TSDR;
	}

	/**
	 * 交易币种
	 */
	private String CRTP;

	@Column(name = "CRTP")
	public String getCRTP() {
		return CRTP;
	}

	public void setCRTP(String CRTP) {
		this.CRTP = CRTP;
	}

	/**
	 * 交易金额
	 */
	private BigInteger CRAT;

	@Column(name = "CRAT")
	public BigInteger getCRAT() {
		return CRAT;
	}

	public void setCRAT(BigInteger CRAT) {
		this.CRAT = CRAT;
	}

	/**
	 * 交易对手姓名/名称
	 */
	private String TCNM;

	@Column(name = "TCNM")
	public String getTCNM() {
		return TCNM;
	}

	public void setTCNM(String TCNM) {
		this.TCNM = TCNM;
	}

	/**
	 * 交易对手特约商户编号
	 */
	private String TSMI;

	@Column(name = "TSMI")
	public String getTSMI() {
		return TSMI;
	}

	public void setTSMI(String TSMI) {
		this.TSMI = TSMI;
	}

	/**
	 * 交易对手证件/证明文件类型
	 */
	private String TCIT;

	@Column(name = "TCIT")
	public String getTCIT() {
		return TCIT;
	}

	public void setTCIT(String TCIT) {
		this.TCIT = TCIT;
	}

	/**
	 * 交易对手证件/证明文件号码
	 */
	private String TCID;

	@Column(name = "TCID")
	public String getTCID() {
		return TCID;
	}

	public void setTCID(String TCID) {
		this.TCID = TCID;
	}

	/**
	 * 交易对手的银行账号种类
	 */
	private String TCAT;

	@Column(name = "TCAT")
	public String getTCAT() {
		return TCAT;
	}

	public void setTCAT(String TCAT) {
		this.TCAT = TCAT;
	}

	/**
	 * 交易对手的银行账号
	 */
	private String TCBA;

	@Column(name = "TCBA")
	public String getTCBA() {
		return TCBA;
	}

	public void setTCBA(String TCBA) {
		this.TCBA = TCBA;
	}

	/**
	 * 交易对手银行账号的开户银行名称
	 */
	private String TCBN;

	@Column(name = "TCBN")
	public String getTCBN() {
		return TCBN;
	}

	public void setTCBN(String TCBN) {
		this.TCBN = TCBN;
	}

	/**
	 * 交易对手的支付账户种类
	 */
	private String TCTT;

	@Column(name = "TCTT")
	public String getTCTT() {
		return TCTT;
	}

	public void setTCTT(String TCTT) {
		this.TCTT = TCTT;
	}

	/**
	 * 交易对手的支付账户号码
	 */
	private String TCTA;

	@Column(name = "TCTA")
	public String getTCTA() {
		return TCTA;
	}

	public void setTCTA(String TCTA) {
		this.TCTA = TCTA;
	}

	/**
	 * 交易对手所在支付机构的名称
	 */
	private String TCPN;

	@Column(name = "TCPN")
	public String getTCPN() {
		return TCPN;
	}

	public void setTCPN(String TCPN) {
		this.TCPN = TCPN;
	}

	/**
	 * 交易对手所在支付机构的银行账号
	 */
	private String TCPA;

	@Column(name = "TCPA")
	public String getTCPA() {
		return TCPA;
	}

	public void setTCPA(String TCPA) {
		this.TCPA = TCPA;
	}

	/**
	 * 交易对手所在支付机构银行账号的开户银行名称
	 */
	private String TPBN;

	@Column(name = "TPBN")
	public String getTPBN() {
		return TPBN;
	}

	public void setTPBN(String TPBN) {
		this.TPBN = TPBN;
	}

	/**
	 * 交易对手的交易IP地址
	 */
	private String TCIP;

	@Column(name = "TCIP")
	public String getTCIP() {
		return TCIP;
	}

	public void setTCIP(String TCIP) {
		this.TCIP = TCIP;
	}

	/**
	 * 交易商品名称
	 */
	private String TMNM;

	@Column(name = "TMNM")
	public String getTMNM() {
		return TMNM;
	}

	public void setTMNM(String TMNM) {
		this.TMNM = TMNM;
	}

	/**
	 * 银行与支付机构之间的业务交易编码
	 */
	private String BPTC;

	@Column(name = "BPTC")
	public String getBPTC() {
		return BPTC;
	}

	public void setBPTC(String BPTC) {
		this.BPTC = BPTC;
	}

	/**
	 * 支付机构与商户之间的业务交易编码
	 */
	private String PMTC;

	@Column(name = "PMTC")
	public String getPMTC() {
		return PMTC;
	}

	public void setPMTC(String PMTC) {
		this.PMTC = PMTC;
	}

	/**
	 * 业务标识号
	 */
	private String TICD;

	@Column(name = "TICD")
	public String getTICD() {
		return TICD;
	}

	public void setTICD(String TICD) {
		this.TICD = TICD;
	}

	@Override
	public int hashCode() {
		return PCPSUtil.getObjectListHashCode(new Object[] { getAlarmInfoId(),
				getSeqNo() });
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof SuspiciousTrans))
			return false;
		SuspiciousTrans other = (SuspiciousTrans) obj;
		if (!PCPSUtil.compareObject(this.getAlarmInfoId(), other
				.getAlarmInfoId()))
			return false;
		return PCPSUtil.compareObject(this.getSeqNo(), other.getSeqNo());
	}

}
